package com.ecloud.support.generator.model.dto;

import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

import com.ecloud.common.base.model.BaseDto;
import com.ecloud.common.base.valid.ValidGroup.Insert;
import com.ecloud.common.base.valid.ValidGroup.QueryOne;

import lombok.Getter;
import lombok.Setter;

/**
 * 表配置
 *
 * @author LiuGangQiang Create in 2021/04/14
 */
@Getter
@Setter
public class TableConfigDto extends BaseDto<String> {
    public interface Generates {
    };

    private static final long serialVersionUID = 2560431775903963939L;
    @NotBlank(message = "{table.config.dbid.not.blank}", groups = { Generates.class, Insert.class, QueryOne.class })
    private String dbId;
    @NotBlank(message = "{table.config.tablename.not.blank}", groups = { Insert.class, QueryOne.class })
    private String tableName;
    private String prefix;
    private String modelName;
    @NotBlank(message = "{table.config.packagename.not.blank}", groups = { Generates.class, Insert.class })
    private String packageName;
    @NotBlank(message = "{table.config.auther.not.blank}", groups = { Generates.class, Insert.class })
    private String author;
    @NotBlank(message = "{table.config.entityname.not.blank}", groups = { Generates.class, Insert.class })
    private String entityName;
    @NotBlank(message = "{table.config.mappername.not.blank}", groups = { Generates.class, Insert.class })
    private String mapperName;
    @NotBlank(message = "{table.config.xmlname.not.blank}", groups = { Generates.class, Insert.class })
    private String xmlName;
    @NotBlank(message = "{table.config.servicename.not.blank}", groups = { Generates.class, Insert.class })
    private String serviceName;
    @NotBlank(message = "{table.config.serviceimplname.not.blank}", groups = { Generates.class, Insert.class })
    private String serviceImplName;
    @NotBlank(message = "{table.config.controllername.not.blank}", groups = { Generates.class, Insert.class })
    private String controllerName;
    @NotBlank(message = "{table.config.entitypackage.not.blank}", groups = { Generates.class, Insert.class })
    private String entityPackage;
    @NotBlank(message = "{table.config.servicepackage.not.blank}", groups = { Generates.class, Insert.class })
    private String servicePackage;
    @NotBlank(message = "{table.config.serviceimplpackage.not.blank}", groups = { Generates.class, Insert.class })
    private String serviceImplPackage;
    @NotBlank(message = "{table.config.mapperpackage.not.blank}", groups = { Generates.class, Insert.class })
    private String mapperPackage;
    @NotBlank(message = "{table.config.controllerpackage.not.blank}", groups = { Generates.class, Insert.class })
    private String controllerPackage;
    @NotBlank(message = "{table.config.dtopackage.not.blank}", groups = { Generates.class, Insert.class })
    private String dtoPackage;
    @NotBlank(message = "{table.config.vopackage.not.blank}", groups = { Generates.class, Insert.class })
    private String voPackage;
    @NotBlank(message = "{table.config.convertpackage.not.blank}", groups = { Generates.class, Insert.class })
    private String convertPackage;
    private String templateSetId;
    @NotEmpty(message = "{table.config.tables.not.empty}", groups = { Generates.class })
    private List<String> tables;
}
